package JUC.线程池;

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

/**
 * 等待3s 同时 塞入 核心线程数个 -> 进池子！
 *
 * 注意 Thread.currentThread().getName()
 * 只看 (构造=3) -> 名字只有123
 * fori 10
 *  抢到 10个任务 之一 ->名字 还是 123
 *
 * 池固定
 *
 * 缺点？
 *
 */
public class UseSchedulePool {
    public static void main(String[] args) {
        useSchPool();
    }
    private static void useSchPool() {
        ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(3);
        for (int i = 0; i < 10; i++) {
            scheduledExecutorService.schedule(()->{
                System.out.println(Thread.currentThread().getName() + "号线程 抢到 一个任务 -> 塞入池子"); // 1 异步 同时塞入

                for (int j = 0; j < 3; j++) {
                    try {
                        Thread.sleep(1000); // 1-> 这里放心 sleep
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("运行中");
                }

                System.out.println("结束执行");
            },3, TimeUnit.SECONDS); // 等3s 再 *塞入* 池子
        }
        scheduledExecutorService.shutdown();
    }
}
